# 工厂模式的核心思想是将实例化对象的代码提取到一个工厂类或方法中，以便在需要时可以动态地创建对象，而无需直接调用类的构造函数。
# 好处：
# 大批量创建对象的时候有统一的入口，易于代码维护
# 当发生修改，仅修改工厂类的创建方法即可
# 符合现实世界的模式，即由工厂来制作产品(对象)
class Person:
    pass
class Worker(Person):
    pass
class Student(Person):
    pass
class Teacher(Person):
    pass

class Factory:
    def get_person(self, p_type):
        if p_type == 'w':
            return Worker()
        elif p_type == 's':
            return Student()
        else:
            return Teacher()


pf = Factory()
worker = pf.get_person('w')
stu = pf.get_person('s')
teacher = pf.get_person('t')